<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //Promise.allSettled 接受一个 Promise 数组 返回的结果也是一个 Promise 对象
        //返回的结果永远是成功的一个状态
        //声明两个Promise对象
        const p1 = new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve('商品数据 - 1')
            }, 1000)
        })
        const p2 = new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve('商品数据 - 2')
            }, 1000)
        })

        //调用 allSettled 方法 返回的结果始终是一个成功的，而且成功的值是每一个Promise对象它执行的结果，也就是它异步任务结果的值和一个状态
        
        // const result = Promise.allSettled([p1, p2]);
        //all方法也是接受一个Promise对象，但是它返回的结果是根据里面每一个 promise 状态来决定的
        //如果都成功 返回的promise才会成功；如果有一个不成功，则返回的promise就是一个失败的
        const result = Promise.all([p1, p2])
        console.log(result);

        //他们两个都用来做一些批量异步任务的场景，如果每一个异步任务都想得到这个结果，那就用allsettled; 如果异步任务要求每个都成功才能继续往下执行，那么就用all
    </script>
</body>
</html>